iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 12
1
自我挑戰組

一日一CPE系列 第 12

[Day12]10200: Prime Time

  • 分享至 

  • xImage
  •  

考題日期:2016/05/24
題號:10200
星等:2
語言:C++


題目:
https://ithelp.ithome.com.tw/upload/images/20190928/20120937HXNrL3o8kB.png


題意:
知名數學家Euler發現,在 0 <= n < 40 的情況下,n^2+n+41會產生質數,但超過這範圍後則不一定。請找出在某一個範圍中,這個公式可以產生質數的百分比。


程式:

#include <iostream>
#include <iomanip>

using namespace std;
bool Prime(int num)
{
    for(int i = 2 ; i < num/2 ; i++)
    {
        if(num%i == 0)
            return false;
    }
    return true;
}
int formula(int n)
{
    return n*n+n+41;
}
int main()
{
    int a,b;
    while(cin>>a>>b)
    {
        float c = 0;
        for(int i = a ; i <= b ; i++)
        {
            if(Prime(formula(i)))
                c++;
        }
        cout<<fixed<<setprecision(2)<<float(c/(b-a+1)*100)<<endl;
    }
}


測資:
https://ithelp.ithome.com.tw/upload/images/20190928/20120937iqv2Uz8cZB.png


上一篇
[Day11]11040: Add bricks in the wall
下一篇
[Day13]11401: Triangle Counting
系列文
一日一CPE30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言